import Vue from 'vue'
import VueRouter from 'vue-router'

import news from './routes/news'
import count from './routes/count'

// 以插件的方式添加
Vue.use(VueRouter)

// 实例化路由对象及配置路由表
const routes = [...news, ...count]

const router = new VueRouter({
  // 路由模式
  mode: 'history',
  // 路由规则表
  routes
})

// 切面  一件事件，可以给他分成N多块，来完成
// 全局守卫 每次访问都会执行到
// 前置
// to 目标路由对象
// from 来源路由对象
// next 函数，让路由继续向下执行，否页面空白
// router.beforeEach((to, from, next) => {
//   // console.log(to, from, next)
//   console.log('全局 --- beforeEach');
//   next()
// })
// router.beforeEach((to, from, next) => {
//   // console.log(to, from, next)
//   console.log('全局 --- beforeEach');
//   next()
// })
// router.beforeEach((to, from, next) => {
//   // console.log(to, from, next)
//   console.log('全局 --- beforeEach');
//   next()
// })
// 判断用户是否登录
// router.beforeEach((to, from, next) => {
//   // 在使用导航守卫来验证用户是否登录，一定要把登录页面路由排除掉
//   if (!sessionStorage.getItem('token') && to.path != '/login') {
//     // 到登录页面
//     // next('/login')
//     next({ path: '/login', replace: true })
//   } else {
//     next()
//   }
// })

// router.beforeEach((to, from, next) => {
//   // 写的时候一定要多注间
//   // to.meta ==> 有
//   // to.meta.a ==> undefined
//   // to.meta.a.b===> 报错  undefined.b js不允许
//   // // console.log(to.meta.isAuth.a)

//   // 在使用导航守卫来验证用户是否登录，一定要把登录页面路由排除掉
//   if (!sessionStorage.getItem('token') && to.meta.isAuth) {
//     // 到登录页面
//     // next('/login')
//     next({ path: '/login', replace: true })
//   } else {
//     next()
//   }
// })
/* 
router.beforeEach((to, from, next) => {
  console.log('全局 --- beforeEach')
  next()
})

// 解析
router.beforeResolve((to, from, next) => {
  console.log('全局 --- beforeResolve')
  next()
})

// 后置
router.afterEach((to, from) => {
  console.log('全局 --- afterEach')
})
 */
export default router
